/* 
 * File:   Agent.hxx
 * Author: enric
 *
 * Created on 26 de enero de 2012, 17:23
 */

#ifndef AGENT_HXX
#define	AGENT_HXX

#include "Key.hxx"

/**
 * State Variable: Agent
 */
class Agent
{
public:
	Agent( Cell* location );
	~Agent();

	bool  arm_empty() const { return m_holding_key == NO_KEY; }
	Key*  key_holding() const { return m_holding_key; }
	Cell* location() const { return m_location; }

	void  set_key_holding( Key* k ) { m_holding_key = k; }
	void  set_location( Cell* c ) { m_location = c; }

protected:

	Key*   m_holding_key;
	Cell*  m_location;
};

#endif	/* AGENT_HXX */

